﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Битва_Монстров
{
    class Program
    {
        static void Main(string[] args)
        {
            Monster M1 = new Monster("Вася");        
            Monster M2=new Monster("Петя");    
            while (!M1.isDead() && !M2.isDead())  
            {      
                Console.WriteLine("Данные монстра {0}:", M1.name);      
                M1.enterData();                     
                Console.Clear();                        
                Console.WriteLine("Данные монстра {0}:", M2.name);      
                M2.enterData();                      
                Console.Clear();      
                Console.WriteLine("БИТВА!");     
                M1.attack(M2);                          
                M2.attack(M1);                          
                Console.ReadLine();                   
                Console.Clear();   
            }Console.ReadLine();
        }
    }
    public class Monster
    {   
        public String name; 
        public Int32 lives = 50,                
            power,               
            damage; 
        Int32[] attDef = new Int32[4];    
        public Monster(String n)   
        {      name = n;   }   
        public Boolean isDead()  
        {
            if (lives <= 0)
                return true;
            else return false;
        }   
        public void enterData()  
        {
            power = 30;                                          
            Console.WriteLine("Доступно {0} очков. Введите:\nАтаку головы, атаку туловища, защиту головы, защиту туловища", power);
            for (Int16 i = 0; i < 4; i++)                        
            {
                Int32 k = Convert.ToInt32(Console.ReadLine());    
                while (k > power)         
                {
                    Console.WriteLine("!!! Превышены очки. Вводи заново");
                    k = Convert.ToInt32(Console.ReadLine());     
                }
                attDef[i] = k;                                    
                power -= attDef[i];                               
                Console.WriteLine("Осталось {0} очков", power);  
            } 

        }   
        public void attack(Monster Enemy) 
 
        { 
            Int32 damHead = Enemy.attDef[0] - attDef[2];       
            if (damHead < 0) damHead = 0;              
            Int32 damBody = Enemy.attDef[1] - attDef[3];        
            if (damBody < 0) damBody = 0;   damage = damHead + damBody;                    
            lives -= damage;                              
            Console.WriteLine("Монстр {0}: нанесен урон {1}, жизней осталось {2}", name, damage, lives);
        }
    };

}
